package com.sc.nft.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sc.nft.entity.MallDeliveryAddress;
import com.sc.nft.entity.dto.AddAddressDTO;
import com.sc.nft.entity.dto.ModificationAddRessDTO;
import com.sc.nft.entity.vo.MallDeliveryAddressVO;
import com.sc.nft.sup.PageRequest;

/**
 * 收货地址表(MallDeliveryAddress)表服务接口
 *
 * @author wwc
 * @since 2023-05-11 16:35:35
 */
public interface MallDeliveryAddressService {

    /**
     * 根据用户id和地址id查询地址信息
     * @param userId
     * @param id
     * @return
     */
    MallDeliveryAddress getAddressByUserIdAndId(Long userId, Long id);
    /**
     * 新增地址
     *
     * @param addAddressDTO
     */
    void addAddress(AddAddressDTO addAddressDTO, Long userId);

    /**
     * 修改地址
     *
     * @param modificationAddRessDTO
     * @param userId
     */
    void modificationAddress(ModificationAddRessDTO modificationAddRessDTO, Long userId);

    /**
     * 根据id获取地址信息
     *
     * @param id
     * @return
     */
    MallDeliveryAddressVO getDataById(Long id);

    /**
     * 根据id删除地址
     *
     * @param id
     */
    void deleteById(Long id);

    /**
     * 分页查询地址列表
     *
     * @param pageRequest
     * @return
     */
    Page<MallDeliveryAddressVO> page(PageRequest pageRequest,Long userId);

    /**
     * 获取默认地址
     *
     * @param userId
     * @return
     */
    MallDeliveryAddressVO getDefaultAddress(Long userId);
}
